
\section{GTD理论}
\label{sec:gtd}

GTD理论是我到现在为止见到的唯一靠谱的“理论”，
当然GTD的作者David Allen也没把它作为一个理论，其中融合了相当多的建议之类的，
或是经验之谈之类的东西，总的来说内容还是不少的。
作者就此出了本叫《Getting Things Done》\footnote{中文译名《无压工作的艺术》}，
GTD的名字就是由此而来。
推荐没有读过此书的同学看下，不过光看思想的话本文应该差不多了，不过具体实践还是看原书比较好。

这本书的：
\href{http://book.douban.com/subject/3398806/}{\textbf{豆瓣链接}}、
\href{http://library.nu/docs/W4R7OM91B6/Getting\%20Things\%20Done\%3A\%20The\%20Art\%20of\%20Stress-Free\%20Productivity}
{\textbf{英文版下载地址}}、
\href{http://ishare.iask.sina.com.cn/f/8322797.html}{\textbf{中文版下载地址}}。

国内致力于GTD推广的网站是GTDlife\footnote{\href{http://www.gtdlife.com/}{\textbf{主页传送门}}}。
对于GTD或时间管理不了解的同学可以去看看。

\subsection{GTD解决的问题}
引用我在2011年1月写的一段话，我懒得把它融合到本文的风格中了。
\begin{quotation}
\kaishu
人总是在忙于各种事情，一般都是用脑袋记着；如果事情太多就找张纸写写，
所谓的好记性不如烂笔头。事情再多就出问题了：很多人不得不停下来，
列举所有的事情，分析所有的可用时间，捋清楚事情间的约束关系、主次关系，
然后靠拍脑袋或用贪心法弄出一个日程安排，然后照此办理。

这还是比较不错的解决办法了，生活比较大条的人就各种方法都有了，
总之事情能否按时按量做完是没谱的。事情少的时候这都不是问题，
事情多了可以选择丢弃一些次要的，但是当必做的事情都多的超出了人脑的处理能力时，
这时候生活就崩溃了，各种混乱就此产生。

应该说事情多到一定程度时崩溃时难免的，但一般我们开始崩溃的时候其实并不是我们无法按时完成任务，
而是我们的大脑调度不开了。看到怎么多的待办事项开始头疼了，或者有些事情很紧急，很重要，
我们的压力很大，造成思维不清醒等等。总之绝大部分时候完全是因为我们自己把局面搞得一塌糊涂，
这时候旁观者清，某个人随便给你指个方法，你顿时感觉醍醐灌顶，
接下来事半功倍，很快就把生活中的一团糟搞定了。这就是一种伪崩溃，或者称为任务调度崩溃。
\end{quotation}

这种问题应该如何解决呢？毫无疑问，这里的答案是GTD，或者至少你要先知道GTD。

\subsection{GTD流程}
经典的GTD流程包括5个阶段：

\paragraph{收集}
收集强调每个人要有一个方便、尽量单一固定的“收集篮”，
当有任何需要时间完成的非紧急事项出现，都要被放入收集篮中等待进一步处理。
而且不光如此，所有在你思维中存在的，但尚不能执行的任务都要被书面化，放入收集篮中。

\paragraph{加工处理}
加工处理则是清空收集篮的动作，
在这个步骤中要对收集篮中的东西进行处理，扔掉“垃圾”，该备忘的备忘，
能实施的指定工作计划、实施、委派他人或者写入日程表。

\paragraph{组织管理}
组织管理则是指各种清单，如待办任务列表，待采购列表等等。

\paragraph{回顾}
回顾是指定期清理各种列表，以防某些任务在某个列表上停留的时间太长。
也包括回顾思考最近这段时间的生活工作，当然这和日程管理关系不大。

\paragraph{行动}
行动是不需要解释的。

\subsubsection{GTD的先修课}

如果从未使用过任何日程管理类的软件的话，用户往往不能适应GTD这样复杂的流程，
而且在意识中和潜意识中对于这个流程能否有效也没有信心。

根据我个人的经验，应该考虑先使用一段时间的时间点提醒类程序或其他简单功能的程序，
培养用户的信心和使用习惯。

\subsection{核心思想}

\subsubsection{大脑的弱项}
GTD的核心在于收集篮，我们为什么要把任务放入收集篮呢？
David Allen的解释是：
\begin{enumerate}
\item
对某些事情念念不忘会影响到当前正在进行的工作，例如在玩的时候担心某些工作还没有做完，
睡觉前突然想起某些任务被忘记了等等。你总要担心点什么，而在担心的东西很多的时候，
你的大脑就不堪重负了。

问题还有即使你的意识没有想起某些事情，你的潜意识可能也正在担心某些事情没有完成，
这也会对当前工作造成影响。

\item
你会忘记一些事情，可能永远也不会想起来，可能过了Deadline之后才想起来，不管怎么样，
把任务提醒放在短期记忆中不是什么太好的事情，特别是对于任务很多的人来说。
\end{enumerate}

通俗的来说，GTD基于如下假设：
\begin{quotation}
\kaishu
在大脑中（意识的或潜意识的）担心一些还未完成的事情会显著影响当前的工作效率。
\end{quotation}

但是人的心理不是那么好调节的，你跟自己说已经把所有任务都列到纸上了是不行的，
如果你永远都不去看它，那就和没写一样，你的大脑也在担忧“还有某些任务在那个收集篮里没有被完成”。

GTD采取的办法就是提出一个工作规范，只要你按照这个规范操作，
那么每件事情都能被及时处理。除非你根本没有充足的时间处理每件事，
GTD只是帮你调度任务，而不是选择任务。
实际的解决方法是用【实际的收集篮+工作规范】
或【专用的GTD程序】。

注意这里说的是GTD帮你调度任务，而不是替你调度任务，
而后者则是第 \ref{sec:function-2ndlevel} 节介绍的第二阶段功能之一，
即GTD程序应该替我们调度任务，我们负责给程序足够的信息。

\subsubsection{缓存}

另外在我看来GTD的另一个改进是在处理任务的各个阶段都引入了缓存机制，
接到任务的阶段有收集篮，初步整理任务的阶段是“加工处理”，
详细地定制计划、实施等都被分开，可以单独进行。

\subsubsection{分类}

GTD还采用了多种列表，可以是按任务类型、可以按需要的资源等等，
为以后处在特定环境下直接获取适合当前的任务提供了条件，其实相当于一个过滤器的作用。

\subsubsection*{小结}

GTD的贡献在于提出前面的那个基础假设，并按照这个假设把【平时每时每刻都在意识或潜意识中
的对未完成的任务的担心】减少为【只在更新待办任务篮时才考虑这些问题】，
这样剩下大块的高质量的工作时间，可以再细分为时间块等等，这都是次要的了。
值得注意的是，任务规划的制定方式并没有改变，还是由自己在某个时间制定的，这和没有GTD时是一样的。


\subsection{GTD的问题}

\subsubsection{环境是快速变化的}

GTD没有考虑的一点是：\emph{环境是快速变化的}。

另一个问题是，为了减少紧急事件的响应时间，我们必须增加更新收集篮和查看各种列表的频率。
但在GTD中更新收集篮是一项系统工程，代价很高\footnote{为什么要求在2分钟内能做完的事情马上就去做呢？
就是因为把它排进计划需要的成本大于2分钟。}，频繁更新很容易让人失去耐心。
查看各种充满【暂时不想做、不该现在做的任务】的列表也是一件让人很不爽的事。
但如果两次更新间隔太长，你的潜意识就会担心这两次更新中间是否可能会有一个突发事件。

这两个问题其实是相关联的。因为环境的变化本身就迫使我们更新待办任务列表。
这个变化可能是外在的，也可能是内在的，比如：你原本计划某时做A任务，但到了时间你却发现你很不想做A，
或是做A的条件还不成熟，总之A需要被推迟。这时你已经完成的工作计划怎么办？只能强迫重做或是脱离原始计划。

脱离原始计划相当于放弃GTD，重做工作计划是件让人很沮丧的事情，重做的频率太高也会使人放弃。
\footnote{这时你应该能够明白为什么自己每次都不能按照原始计划进行了。}

\subsubsection{不知道任务是否都能被完成}

GTD理论未能解决的一个问题是，如何确保该完成的任务都能完成。

不过这也难怪，一般来说除非你能排出一个日程表，否则你没法保证任务都能在Deadline之前完成。
而考虑到环境是快速变化的，手工弄出一个日程表的代价又相当高，这几乎是不可完成的。
现代日程提醒软件也从没有试图同时去解决这两个问题。
尤其是第一个，因为对于日程表系统来说，日程表是随时可用的，但调整日程表的代价很高。

\subsubsection*{题外话——日程系统不能太烂}

应该说之所以使用收集篮等等措施就是因为它们比我们的记忆更可靠，
如果日程系统同样提供的其他必备功能的质量不够高，那用户就会自己来做这方面的工作，
但这些工作其实都是较为机械的，重复的。
总让用户来做这种事情是对工作效率的损伤。

\subsection{对GTD的修正}

考虑到第二个假设“环境是快速变换的”，那么人工更新待办任务篮就是低效的。
机械重复的事情最适合程序去干，所以我们需要一种GTD程序，这种程序的功能就是快速自动生成新的任务安排表。
这样，每次环境变化，或是工作条件变化，或是等待的稀有资源条件变化，或是自己想做别的任务的时候，
只要输入变化，稍等片刻，程序产生一个新的安排，我们只需按程序提示工作即可。
这才完全摆脱了复杂的任务调度，我们只要关注现在在做的事情就可以。

也许你对这个功能感到很熟悉，恩，这就是传统的秘书工作的一部分。

要注意的是，这个任务安排表是不稳定的，暂时的。因为环境随时改变，
新的任务安排可能和原有的会有很大不同，除了那些固定任务或是协作任务的时间不能轻易改变，
剩下的自己做的事情只要都按时按量完成了，那么它们被完成的顺序就不是我们应该关心的。
所以这个功能可以简化为：\emph{当你空闲时，显示几个最适合的任务供你挑选}。
一般来说，推荐3个任务就足够了。
但如何推荐任务可就相当复杂了，推荐算法要考虑到任务的完成时间、和其他任务冲突的可能性、
任务的优先级、任务需要的资源、任务是否经过充分规划等等，这些都将在第 \ref{sec:function-2ndlevel} 节进行讨论。

对于第二个问题，日程系统应该能\emph{显示在未来一段时间内时间的松紧程度，是否有任务发生冲突}。
任务冲突不光是因为时间重合导致，也可能是因为多个任务等待资源或依赖条件等原因导致的，情况可能很复杂。
这其实和上面的推荐适合的任务也是相关的，要推荐适合的任务必然要了解当前日程的状态。


